package com.ruoyi.mall.pms.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 商品对象 pms_product
 *
 * @author xuxing
 * @date 2021-02-03
 */
public class PmsProduct extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 品牌id */
    private Long brandId;

    /** 分类id */
    private Long productCategoryId;

    /** 属性分类id */
    private Long productAttributeCategoryId;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String name;

    /** 副标题 */
    @Excel(name = "副标题")
    private String subTitle;

    /** 图片 */
    private String pic;

    /** 审核状态 */
    private Integer verifyStatus;

    /** 排序 */
    @Excel(name = "排序")
    private Long sort;

    /** 销量 */
    @Excel(name = "销量")
    private Long sale;

    /** 价格 */
    @Excel(name = "价格")
    private BigDecimal price;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 商品重量 */
    @Excel(name = "商品重量")
    private BigDecimal weight;

    /** 产品分类名称 */
    @Excel(name = "产品分类名称")
    private String productCategoryName;

    /** 品牌名称 */
    @Excel(name = "品牌名称")
    private String brandName;

    /** 详情描述 */
    private String detail;

    /** 商品介绍 */
    private String desc;

    /** 上架状态 */
    private Integer publishStatus;

    /** 新品状态 */
    private Integer newStatus;

    /** 推荐状态 */
    private Integer recommendStatus;

    /** 赠送积分 */
    private Long giftPoint;

    /** 画册图片 */
    private String albumPics;

    /** 关键字*/
    private String keywords;

    /** 产品服务 */
    private String serviceIds;

    /** 促销类型 */
    private Integer promotionType;

    /** 促销开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date promotionStartTime;

    /** 促销结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date promotionEndTime;

    /** 促销限购数量 */
    private Long promotionPerLimit;

    /** 促销价格 */
    private BigDecimal promotionPrice;

    public BigDecimal getPromotionPrice() {
        return promotionPrice;
    }

    public void setPromotionPrice(BigDecimal promotionPrice) {
        this.promotionPrice = promotionPrice;
    }

    public Integer getPublishStatus() {
        return publishStatus;
    }

    public void setPublishStatus(Integer publishStatus) {
        this.publishStatus = publishStatus;
    }

    public Integer getNewStatus() {
        return newStatus;
    }

    public void setNewStatus(Integer newStatus) {
        this.newStatus = newStatus;
    }

    public Integer getRecommendStatus() {
        return recommendStatus;
    }

    public void setRecommendStatus(Integer recommendStatus) {
        this.recommendStatus = recommendStatus;
    }

    public Long getGiftPoint() {
        return giftPoint;
    }

    public void setGiftPoint(Long giftPoint) {
        this.giftPoint = giftPoint;
    }

    public String getAlbumPics() {
        return albumPics;
    }

    public void setAlbumPics(String albumPics) {
        this.albumPics = albumPics;
    }

    public String getKeywords() {
        return keywords;
    }

    public void setKeywords(String keywords) {
        this.keywords = keywords;
    }

    public String getServiceIds() {
        return serviceIds;
    }

    public void setServiceIds(String serviceIds) {
        this.serviceIds = serviceIds;
    }

    public Integer getPromotionType() {
        return promotionType;
    }

    public void setPromotionType(Integer promotionType) {
        this.promotionType = promotionType;
    }

    public Date getPromotionStartTime() {
        return promotionStartTime;
    }

    public void setPromotionStartTime(Date promotionStartTime) {
        this.promotionStartTime = promotionStartTime;
    }

    public Date getPromotionEndTime() {
        return promotionEndTime;
    }

    public void setPromotionEndTime(Date promotionEndTime) {
        this.promotionEndTime = promotionEndTime;
    }

    public Long getPromotionPerLimit() {
        return promotionPerLimit;
    }

    public void setPromotionPerLimit(Long promotionPerLimit) {
        this.promotionPerLimit = promotionPerLimit;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setBrandId(Long brandId)
    {
        this.brandId = brandId;
    }

    public Long getBrandId()
    {
        return brandId;
    }
    public void setProductCategoryId(Long productCategoryId)
    {
        this.productCategoryId = productCategoryId;
    }

    public Long getProductCategoryId()
    {
        return productCategoryId;
    }
    public void setProductAttributeCategoryId(Long productAttributeCategoryId)
    {
        this.productAttributeCategoryId = productAttributeCategoryId;
    }

    public Long getProductAttributeCategoryId()
    {
        return productAttributeCategoryId;
    }
    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }
    public void setPic(String pic)
    {
        this.pic = pic;
    }

    public String getPic()
    {
        return pic;
    }
    public void setVerifyStatus(Integer verifyStatus)
    {
        this.verifyStatus = verifyStatus;
    }

    @NotBlank(message = "审核状态不能为空")
    public Integer getVerifyStatus()
    {
        return verifyStatus;
    }
    public void setSort(Long sort)
    {
        this.sort = sort;
    }

    public Long getSort()
    {
        return sort;
    }
    public void setSale(Long sale)
    {
        this.sale = sale;
    }

    public Long getSale()
    {
        return sale;
    }
    public void setPrice(BigDecimal price)
    {
        this.price = price;
    }

    public BigDecimal getPrice()
    {
        return price;
    }
    public void setUnit(String unit)
    {
        this.unit = unit;
    }

    public String getUnit()
    {
        return unit;
    }
    public void setWeight(BigDecimal weight)
    {
        this.weight = weight;
    }

    public BigDecimal getWeight()
    {
        return weight;
    }
    public void setProductCategoryName(String productCategoryName)
    {
        this.productCategoryName = productCategoryName;
    }

    public String getProductCategoryName()
    {
        return productCategoryName;
    }
    public void setBrandName(String brandName)
    {
        this.brandName = brandName;
    }

    public String getBrandName()
    {
        return brandName;
    }
    public void setDetail(String detail)
    {
        this.detail = detail;
    }

    public String getDetail()
    {
        return detail;
    }

    public String getSubTitle() {
        return subTitle;
    }

    public void setSubTitle(String subTitle) {
        this.subTitle = subTitle;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    @Override
    public String toString() {
        return "PmsProduct{" +
                "id=" + id +
                ", brandId=" + brandId +
                ", productCategoryId=" + productCategoryId +
                ", productAttributeCategoryId=" + productAttributeCategoryId +
                ", name='" + name + '\'' +
                ", subTitle='" + subTitle + '\'' +
                ", pic='" + pic + '\'' +
                ", verifyStatus=" + verifyStatus +
                ", sort=" + sort +
                ", sale=" + sale +
                ", price=" + price +
                ", unit='" + unit + '\'' +
                ", weight=" + weight +
                ", productCategoryName='" + productCategoryName + '\'' +
                ", brandName='" + brandName + '\'' +
                ", detail='" + detail + '\'' +
                ", desc='" + desc + '\'' +
                ", publishStatus=" + publishStatus +
                ", newStatus=" + newStatus +
                ", recommendStatus=" + recommendStatus +
                ", giftPoint=" + giftPoint +
                ", albumPics='" + albumPics + '\'' +
                ", keywords='" + keywords + '\'' +
                ", serviceIds='" + serviceIds + '\'' +
                ", promotionType=" + promotionType +
                ", promotionStartTime=" + promotionStartTime +
                ", promotionEndTime=" + promotionEndTime +
                ", promotionPerLimit=" + promotionPerLimit +
                '}';
    }
}
